﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Interfaces;

namespace simpel_Server
{
    internal class AuktionClientListe
    {
        private static object _lock = new object();
        private IAuktion auktion;
        private List<ClientHandler> clients;
        private DateTime senestSendt;
        internal AuktionClientListe(IAuktion IAuktion, ClientHandler clientHandler)
        {
            clients = new List<ClientHandler>();
            this.auktion = IAuktion;
            senestSendt = DateTime.MinValue;
            Add(clientHandler);
        }

        public IAuktion Auktion
        {
            get { return auktion; }
        }

        public void Add(ClientHandler clientHandler)
        {
            lock (_lock)
            {
                clients.Add(clientHandler);
            }
        }


        internal void Opdater()
        {
            lock (_lock)
            {
                if (auktion.SkalOpdateres())
                {
                    foreach (ClientHandler clientHandler in clients)
                    {
                        if (auktion.ErAuktionenSlut())
                        {
                            clientHandler.SendUpdate("HAMMERTIME - pris på auktion nr "+auktion.Nummer+" blev "+auktion.Pris);
                        }
                        clientHandler.SendUpdate(auktion.ToString());
                    }
                }
            }
            ;
        }
    }
}
